/**
 * 它的作用跟我们前面讲的字面量联合类型有点相似
 */

/**
 * 枚举主要分数数值枚举和字符串枚举
 * 数值枚举，它的默认值是从0开始，然后依次递增
 * 它的枚举的值是可以改的，改了之后，还是依次往后增加
 * 如果前面指定了值，后面的值，就会依次增加
 */
/**
enum Sex {
  Man,
  Woman,
  Unknow
}
 */
/**
enum Sex {
  Man = 5, // 一般我们数值枚举，不会给定值，但是如果后台有特殊需求，我们就给对应的值
  Woman = 8,
  Unknow
}
 */

/**
 * 字符串枚举，如果给某个赋值了，所有的都要赋值
 */
enum Sex {
  Man = 'Man',
  Woman = 'Woman',
  Unknow = 'Unknow'
}

let person = {
  name: '蔡佳怡',
  age: 30,
  sex: Sex.Woman
}

console.log(person)

/**
 * 字符串枚举
 */
enum Direction {
  Up = 'up',
  Down = 'down',
  Left = 'left',
  Right = 'right'
}

function changeDirection (direction: Direction) {
  switch (direction) {
    case Direction.Up:
      console.log('你的方向是向上...')

      break

    case Direction.Down:
      console.log('你的方向是向下...')

      break

    default:
      break
  }
}

changeDirection(Direction.Up)
